# handle_yaml
# 2024/10/19
# author:www
import yaml
def get_yaml_data(filepth):
    '''
    读取yaml文件
    :param filepth: 文件路径
    :return: 返回读取的内容
    '''
    with open(filepth, 'r',encoding='utf-8') as f:
        # yaml.safe_load(f.read()) 是PyYAML库中的一个函数，用于将YAML格式的字符串安全地转换为Python对象。
        return yaml.safe_load(f.read())  # 读取yaml文件中，只有一段数据内容
        # return yaml.safe_load_all(f.read())  # 读取yaml文件中，有多段数据内容


def set_yaml_data(filepth,indata):
    '''
    内容写入yaml文件
    :param filepth: 文件路径（没有则创建）
    :param indata:  需要写入文件中的内容
    :return:
    '''
    with open(filepth, 'a',encoding='utf-8') as f: # a模式是追加
        yaml.safe_dump(indata, f)


def set_yamls_data(filepth,indata):
    '''
    内容写入yaml文件
    :param filepth: 文件路径（没有则创建）
    :param indata:  需要写入文件中的内容
    :return:
    '''
    with open(filepth, 'w',encoding='utf-8') as f: # w模式是写入
        yaml.safe_dump_all(indata, f)


def get_yamlCase_data(filepth):
    '''
    读取yaml格式的用例文件
    :param filepth:
    :return:
    '''
    resList = []
    with open(filepth, 'r', encoding='utf-8') as f:
        yaml_res = yaml.safe_load(f.read()) # 读取出来的是一个列表（如果有多组则是多个列表）
        for yr in yaml_res:
            resList.append((yr['title'],yr['body'],yr['response']))
        return resList



if __name__ == '__main__':
    data_group = [[1,2,3,4,5],{'age': '年龄'}]
    # set_yaml_data('../data/test_write.yaml',{'sex': 'famale'}) # 写入数据至yaml中
    # set_yamls_data('../data/test_write.yaml', data_group) # 写入多组内容至yaml中
    # res = get_yaml_data('../data/apiConfig.yaml') # 打印出yaml中的内容
    # for i in res:
    #     print(i)
    resList = get_yamlCase_data('../data/login_case_yaml.yaml')
    print(resList)